<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<html>
<head>
<title>DRV_SDMMC_EventHandlerSet Function</title>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <meta name="generator" content="Doc-O-Matic" />
    <meta http-equiv="Content-Style-Type" content="text/css" />
    <link rel="STYLESHEET" href="default.css" type="text/css" />

<script type="text/javascript" src="scripts.js"></script>
</head>
<body class="Element700" onload="onBodyLoadEx('frames.html', 'topic', '00446.html');" onmousedown="onBodyMouseDown();">

<!-- Begin Popups -->

<!-- End Popups -->

<!-- Begin Page Header -->
<div class="Element710" id="areafixed">
<div class="Element94">
<a href="00007.html" target="topic">Driver Libraries Help</a> &gt; <a href="00109.html" target="topic">SDMMC Driver Library</a> &gt; <a href="00110.html" target="topic">Library Interface</a> &gt; b) Core Client Functions &gt; <a href="00446.html" target="topic">DRV_SDMMC_EventHandlerSet Function</a></div>
<div class="Element92">
<table width="100%" cellspacing="0" cellpadding="0">
<tr><td width="25%">
<div class="Element1">
MPLAB Harmony Core Help</div>
</td><td width="25%">
<div class="Element2">
<a href="contents.html" target="tocidx">Contents</a> | <a href="00007.html" target="topic">Home</a></div>
</td><td width="25%">
<div class="Element90">
<a href="00433.html" target="topic">Previous</a> | <a href="00110.html" target="topic">Up</a> | <a href="00431.html" target="topic">Next</a></div>
</td><td width="25%">
<div class="Element96">
<a href="mailto:docerrors@microchip.com&subject=MPLAB Harmony Documentation Feedback (Topic ID: DRV_SDMMC_EventHandlerSet@DRV_HANDLE@void*@uintptr_t Topic Title: DRV_SDMMC_EventHandlerSet Function)&body=Thank you for your feedback! Please include a description of your feedback, and indicate whether you are reporting an an error in the documentation or an enhancement.">Documentation Feedback</a><br> <a href="http://support.microchip.com" target="_blank">Microchip Support</a></div>
</td></tr></table><div class="Element5">
DRV_SDMMC_EventHandlerSet Function</div>
</div>
</div>

<!-- End Page Header -->

<!-- Begin Client Area -->
<div class="Element720" id="areascroll">
<div class="Element721">

<!-- Begin Page Content -->
<a name="PageContent"></a><div class="Element58">
<a name="4465736372697074696F6E"></a><div class="Element11">
<div class="Element10">
<p class="Element10">
This function allows a client to identify an event handling function for the driver to call back when queued operation has completed. When a client queues a request for a read or a write operation, it is provided with a handle identifying the buffer that was added to the driver's buffer queue. The driver will pass this handle back to the client by calling &quot;eventHandler&quot; function when the queued operation has completed.&nbsp;</p>
<p class="Element10">
The event handler should be set before the client performs any read or write operations that could generate events. The event handler once set, persists until the client closes the driver or sets another event handler (which could be a &quot;NULL&quot; pointer to indicate no callback).</p></div>
</div>
<a name="43"></a><div class="Element99">
C</div>
<div class="Element101"><div class="Element100"><pre class="Element100"><strong><span style="color: #000080">void</span></strong> <strong><span style="color: #000000">DRV_SDMMC_EventHandlerSet</span></strong>(
    <strong><span style="color: #000080">const</span></strong> <a href="00257.html" target="topic">DRV_HANDLE</a> <strong><span style="color: #000000">handle</span></strong>, 
    <strong><span style="color: #000080">const</span></strong> <strong><span style="color: #000080">void</span></strong>* <strong><span style="color: #000000">eventHandler</span></strong>, 
    <strong><span style="color: #000080">const</span></strong> uintptr_t <strong><span style="color: #000000">context</span></strong>
);</pre></div></div>
<a name="507265636F6E646974696F6E73"></a><div class="Element14">
Preconditions</div>
<div class="Element11">
<div class="Element10">
<p class="Element10">
The <a href="00448.html" target="topic">DRV_SDMMC_Initialize</a> routine must have been called for the specified SDMMC driver instance.&nbsp;</p>
<p class="Element10">
The <a href="00451.html" target="topic">DRV_SDMMC_Open</a> routine must have been called to obtain a valid opened device handle.</p></div>
</div>
<a name="506172616D6574657273"></a><div class="Element14">
Parameters</div>
<div class="Element11">
<div class="Element10">
<div class="Element312">
<div class="TableDiv">
<table cellspacing="0" class="Table3">
<tr>
<td class="Element300" valign="top" width="35%">
<div class="Element301">
Parameters&nbsp;</div></td><td class="Element304" valign="top" width="65%">
<div class="Element305">
Description&nbsp;</div></td></tr><tr>
<td class="Element302" valign="top" width="35%">
<div class="Element303">
handle&nbsp;</div></td><td class="Element306" valign="top" width="65%">
<div class="Element307">
A valid open-instance handle, returned from the driver's open function<br>&nbsp;</div></td></tr><tr>
<td class="Element302" valign="top" width="35%">
<div class="Element303">
eventHandler&nbsp;</div></td><td class="Element306" valign="top" width="65%">
<div class="Element307">
Pointer to the event handler function implemented by the user<br>&nbsp;</div></td></tr><tr>
<td class="Element302" valign="top" width="35%">
<div class="Element303">
context&nbsp;</div></td><td class="Element306" valign="top" width="65%">
<div class="Element307">
The value of parameter will be passed back to the client unchanged, when the eventHandler function is called. It can be used to identify any client specific data object that identifies the instance of the client module (for example, it may be a pointer to the client module's state structure).&nbsp;</div></td></tr></table></div></div>
</div>
</div>
<a name="52657475726E73"></a><div class="Element14">
Returns</div>
<div class="Element11">
<div class="Element10">
<p class="Element10">
None.</p></div>
</div>
<a name="52656D61726B73"></a><div class="Element14">
Remarks</div>
<div class="Element11">
<div class="Element10">
<p class="Element10">
If the client does not want to be notified when the queued operation has completed, it does not need to register a callback.</p></div>
</div>
<a name="4578616D706C65"></a><div class="Element14">
Example</div>
<div class="Element11">
<div class="Element10">
<div class="Element13"><div class="Element12"><pre class="Element12"><i><span style="color: #008000">// myAppObj is an application specific state data object.</span></i>
MY_APP_OBJ myAppObj;

uint8_t myBuffer[MY_BUFFER_SIZE];
uint32_t blockStart, nBlock;
<a href="00434.html" target="topic">DRV_SDMMC_COMMAND_HANDLE</a> commandHandle;

<i><span style="color: #008000">// drvSDMMCHandle is the handle returned</span></i>
<i><span style="color: #008000">// by the DRV_SDMMC_Open function.</span></i>

<i><span style="color: #008000">// Client registers an event handler with driver. This is done once.</span></i>

DRV_SDMMC_EventHandlerSet(drvSDMMCHandle, APP_SDMMCEventHandler, (uintptr_t)&amp;myAppObj);

<a href="00431.html" target="topic">DRV_SDMMC_AsyncRead</a>(drvSDMMCHandle, &amp;commandHandle, &amp;myBuffer[0], blockStart, nBlock);

<strong><span style="color: #000080">if</span></strong>(commandHandle == <a href="00435.html" target="topic">DRV_SDMMC_COMMAND_HANDLE_INVALID</a>)
{
    <i><span style="color: #008000">// Error handling here</span></i>
}

<i><span style="color: #008000">// Event Processing Technique. Event is received when operation is done.</span></i>

<strong><span style="color: #000080">void</span></strong> APP_SDMMCEventHandler(
    <a href="00442.html" target="topic">DRV_SDMMC_EVENT</a> event,
    <a href="00434.html" target="topic">DRV_SDMMC_COMMAND_HANDLE</a> handle,
    uintptr_t context
)
{
    <i><span style="color: #008000">// The context handle was set to an application specific</span></i>
    <i><span style="color: #008000">// object. It is now retrievable easily in the event handler.</span></i>

    MY_APP_OBJ myAppObj = (MY_APP_OBJ* ) context;

    <strong><span style="color: #000080">switch</span></strong>(event)
    {
        <strong><span style="color: #000080">case</span></strong> DRV_SDMMC_EVENT_COMMAND_COMPLETE:

            <i><span style="color: #008000">// This means the data was transferred successfully</span></i>
            <strong><span style="color: #000080">break</span></strong>;

        <strong><span style="color: #000080">case</span></strong> DRV_SDMMC_EVENT_COMMAND_ERROR:

            <i><span style="color: #008000">// Error handling here</span></i>
            <strong><span style="color: #000080">break</span></strong>;

        <strong><span style="color: #000080">default</span></strong>:
            <strong><span style="color: #000080">break</span></strong>;
    }
}</pre></div></div>
</div>
</div>
</div>
<!-- End Page Content -->

<!-- Begin Page Footer -->
<div class="Element95">
<a href="00007.html" target="topic">Driver Libraries Help</a> &gt; <a href="00109.html" target="topic">SDMMC Driver Library</a> &gt; <a href="00110.html" target="topic">Library Interface</a> &gt; b) Core Client Functions &gt; <a href="00446.html" target="topic">DRV_SDMMC_EventHandlerSet Function</a></div>
<div class="Element93">
<table width="100%" cellspacing="0" cellpadding="0">
<tr><td width="25%">
<div class="Element3">
MPLAB Harmony Core Help</div>
</td><td width="25%">
<div class="Element4">
<a href="contents.html" target="tocidx">Contents</a> | <a href="00007.html" target="topic">Home</a></div>
</td><td width="25%">
<div class="Element91">
<a href="00433.html" target="topic">Previous</a> | <a href="00110.html" target="topic">Up</a> | <a href="00431.html" target="topic">Next</a></div>
</td><td width="25%">
<div class="Element97">
<a href="mailto:docerrors@microchip.com&subject=MPLAB Harmony Documentation Feedback (Topic ID: DRV_SDMMC_EventHandlerSet@DRV_HANDLE@void*@uintptr_t Topic Title: DRV_SDMMC_EventHandlerSet Function)&body=Thank you for your feedback! Please include a description of your feedback, and indicate whether you are reporting an an error in the documentation or an enhancement.">Documentation Feedback</a><br> <a href="http://support.microchip.com" target="_blank">Microchip Support</a></div>
</td></tr></table></div>

<!-- End Page Footer -->
</div>
</div>

<!-- End Client Area -->
</body></html>